Controller এর মাধ্যমে ভিউ এবং মডেল পরিচালনা

Web Development - কোডইগনাইটার (Codeigniter) - CodeIgniter Controllers |

Controller হলো CodeIgniter ফ্রেমওয়ার্কের অন্যতম গুরুত্বপূর্ণ উপাদান। এটি Model এবং View এর মধ্যে যোগাযোগ স্থাপন করে এবং অ্যাপ্লিকেশনের কার্যপ্রবাহ নিয়ন্ত্রণ করে। Controller ব্যবহার করে আপনি ডেটা ম্যানিপুলেট করতে পারেন এবং ভিউতে পাঠাতে পারেন।


Controller কীভাবে কাজ করে?

CodeIgniter-এ Controller হলো একটি PHP ক্লাস, যা app/Controllers ডিরেক্টরিতে সংরক্ষিত থাকে। এটি ব্যবহারকারী থেকে ইনপুট গ্রহণ করে, প্রাসঙ্গিক Model থেকে ডেটা রিট্রিভ করে এবং সেই ডেটা View এ পাঠায়।


Controller তৈরি

একটি কাস্টম Controller তৈরি করা

  1. Controller ফাইল তৈরি করুন:
    app/Controllers ডিরেক্টরিতে একটি ফাইল তৈরি করুন। উদাহরণ: ProductController.php
  2. কন্ট্রোলারের ক্লাস ডিফাইন করুন:

    <?php
    
    namespace App\Controllers;
    
    use App\Models\ProductModel;
    
    class ProductController extends BaseController
    {
        public function index()
        {
            // ডিফল্ট ভিউ লোড করা
            return view('welcome_message');
        }
    }
    

    এখানে index() হলো ডিফল্ট মেথড, যা /product URL এ অ্যাক্সেস করলে চালু হবে।


Controller থেকে View লোড করা

View হলো HTML ফাইল যা অ্যাপ্লিকেশনের আউটপুট প্রদর্শনের জন্য ব্যবহৃত হয়।

View তৈরি

  1. View ফাইল তৈরি করুন:
    app/Views ডিরেক্টরিতে একটি ফাইল তৈরি করুন। উদাহরণ: product_list.php
  2. HTML যোগ করুন:

    <h1>Product List</h1>
    <ul>
        <?php if(isset($products)): ?>
            <?php foreach ($products as $product): ?>
                <li><?= $product['name']; ?> - <?= $product['price']; ?></li>
            <?php endforeach; ?>
        <?php else: ?>
            <li>No products found.</li>
        <?php endif; ?>
    </ul>
    

Controller থেকে View লোড করা

public function index()
{
    $data['products'] = [
        ['name' => 'Product 1', 'price' => 100],
        ['name' => 'Product 2', 'price' => 200],
    ];

    return view('product_list', $data);
}

এখানে $data অ্যারে ভিউতে পাঠানো হবে এবং ভিউ সেই ডেটা প্রদর্শন করবে।


Controller থেকে Model ব্যবহার করা

Model মূলত ডেটাবেসের সাথে যোগাযোগ করে। Controller থেকে Model ব্যবহার করে ডেটাবেসের ডেটা রিট্রিভ বা ম্যানিপুলেট করা যায়।

Model তৈরি

  1. Model ফাইল তৈরি করুন:
    app/Models ডিরেক্টরিতে একটি ফাইল তৈরি করুন। উদাহরণ: ProductModel.php
  2. মডেলের কোড যোগ করুন:

    <?php
    
    namespace App\Models;
    
    use CodeIgniter\Model;
    
    class ProductModel extends Model
    {
        protected $table = 'products';
        protected $allowedFields = ['name', 'price'];
    }
    

Controller থেকে Model ব্যবহার

public function index()
{
    $productModel = new \App\Models\ProductModel();
    $data['products'] = $productModel->findAll(); // সমস্ত পণ্য রিট্রিভ করা

    return view('product_list', $data);
}

এখানে findAll() মেথড ব্যবহার করে ডেটাবেস থেকে সমস্ত পণ্য রিট্রিভ করা হয়েছে।


পূর্ণাঙ্গ উদাহরণ: Controller, Model এবং View

Controller

<?php

namespace App\Controllers;

use App\Models\ProductModel;

class ProductController extends BaseController
{
    public function index()
    {
        $productModel = new ProductModel();
        $data['products'] = $productModel->findAll(); // সমস্ত পণ্য রিট্রিভ করা

        return view('product_list', $data); // ভিউ লোড করা
    }
}

Model

<?php

namespace App\Models;

use CodeIgniter\Model;

class ProductModel extends Model
{
    protected $table = 'products';
    protected $allowedFields = ['name', 'price'];
}

View (app/Views/product_list.php)

<h1>Product List</h1>
<ul>
    <?php if(isset($products) && !empty($products)): ?>
        <?php foreach ($products as $product): ?>
            <li><?= $product['name']; ?> - <?= $product['price']; ?></li>
        <?php endforeach; ?>
    <?php else: ?>
        <li>No products found.</li>
    <?php endif; ?>
</ul>

Controller, Model এবং View এর মধ্যে সম্পর্ক

  1. Controller:
    ব্যবহারকারী থেকে ইনপুট গ্রহণ করে এবং প্রাসঙ্গিক Model ও View পরিচালনা করে।
  2. Model:
    ডাটাবেস থেকে ডেটা রিট্রিভ বা ম্যানিপুলেট করে এবং Controller-এ ডেটা পাঠায়।
  3. View:
    Controller থেকে ডেটা গ্রহণ করে এবং ব্যবহারকারীর জন্য আউটপুট রেন্ডার করে।

CodeIgniter-এর Controller, Model, এবং View ব্যবহারের মাধ্যমে আপনার অ্যাপ্লিকেশন মডুলার এবং রক্ষণাবেক্ষণযোগ্য হবে। এটি ডেভেলপমেন্ট প্রসেসকে দ্রুত এবং কার্যকরী করে তোলে।

Content added By
Promotion